var express = require('express');
var User = require('./models/user');
var Ticktype = require('./models/ticktype');
var Ticket = require('./models/ticket');
var captcha = require('svg-captcha');

var router = express.Router();

var jiaoyan2 = '';
router.get('/yanzhengma',(req,res)=>{
    const cap = captcha.create();
    req.session.captcha = cap.text; // session 存储
    jiaoyan2 = cap.text.toUpperCase();
    res.type('svg'); // 响应的类型
    res.send(cap.data);
});

//登录测试接口
router.get('/', function (req, res) {
    res.render('login.html', {
        user: req.session.user,
    })
});
//登录校验接口
router.post('/', function (req, res) {
    //1.获取表单数据
    var body = req.body;
    //2.查询数据是否正确
    User.findOne({
        account: body.account,
        password: body.password
    }, function (err, user) {
        if(err){
            return res.status(500).json({
                err_code:500,
                message:err.message
            })
        }
        if(!user){
            return res.status(200).json({
                err_code:1,
                message: '用户名或密码错误'
            })
        }
        //用户存在 登陆成功 通过session 记录登录状态
        if(body.jiaoyan.toUpperCase() == jiaoyan2){
            req.session.user = user;
            res.status(200).json({
                err_code:0,
                message:'ok',
                userid:user.account
            })
        }else{
            return res.status(200).json({
                err_code:2,
                message: '验证码输入错误'
            })
        }
        });
});
//注册测试接口
router.get('/reg', function (req, res) {
    res.render('reg.html')
});
//处理注册请求接口
router.post('/reg', function (req, res) {
    //操作数据库:判断该用户是否存在,如果存在 不允许注册 如果不存在 注册新建用户
    var body = req.body;
    User.findOne({
        $or:[
            {email: body.email},
            {account: body.account}
        ]
    },function (err, data) {
        if(err){
            return res.status(500).json({
                err_code:500,
                message:'Server Error'
            })
        }
        if(data){
            // 如果邮箱已存在 判断昵称
            return res.status(200).json({
                err_code:1,
                message: 'email or nickname already exists.'
            })
            // return res.render('reg.html', {
            //     err_message:'邮箱或昵称已存在.',
            //     form:body
            // })
        }
        new User(body).save(function (err, user) {
            if(err){
                return res.status(500).json({
                    err_code:500,
                    message:'Server Error'
                })
            }
            //注册成功 记录session用户的登录状态
            req.session.user = user;

            //该方法接受一个对象作为参数 并自动转为字符串发送给浏览器
            res.status(200).json({
                err_code:0,
                message:'ok',
                userid:user.account
                //redirect针对异步请求无效
            // return res.redirect('https://charlotte912.gitee.io/vue912_0001/#/home')
            })
        });
    })
});
//门票列表请求
router.get('/ticketList', function (req, res) {
//     new Ticktype(
        // {ticket_typeid:81,ticket_typename:'[Pan,an Lake Park]徐州潘安湖湿地公园-标准票',auth:'单次票',typename:'标准票', price:60,amount:800,url:'http://127.0.0.1:3000/public/img/jp5.jpg'},
        // {ticket_typeid:82,ticket_typename:'[Pan,an Lake Park]徐州潘安湖湿地公园-儿童票',auth:'单次票',typename:'儿童票',price:30,amount:400,url:'http://127.0.0.1:3000/public/img/jp5.jpg'},
        // {ticket_typeid:83,ticket_typename:'[Pan,an Lake Park]徐州潘安湖湿地公园-学生票',auth:'套票',typename:'学生票',price:45,amount:1600,url:'http://127.0.0.1:3000/public/img/jp2.jpg'},
        // {ticket_typeid:84,ticket_typename:'[Pan,an Lake Park]徐州潘安湖湿地公园-旅游团体票',typename:'旅游团体票',auth:'套票',price:45,amount:1500,url:'http://127.0.0.1:3000/public/img/jp3.jpg'},
        // {ticket_typeid:85,ticket_typename:'[Pan,an Lake Park]徐州潘安湖湿地公园-车辆进出票',typename:'车辆进出票',auth:'单日票',price:80,amount:200,url:'http://127.0.0.1:3000/public/img/jp4.jpg'},
        // {ticket_typeid:86,ticket_typename:'[Pan,an Lake Park]徐州潘安湖湿地公园-优惠票',typename:'优惠票',auth:'员工票',price:0,amount:0,url:'http://127.0.0.1:3000/public/img/jp1.jpg'},
    //     {ticket_typeid:87,ticket_typename:'[Pan,an Lake Park]徐州潘安湖湿地公园-赠票',typename:'赠票',auth:'员工票',price:0,amount:0,url:'http://127.0.0.1:3000/public/img/jp1.jpg'}
    // ).save(
    //     function (err) {
    //         if(err){
    //             return res.status(500).send('error')
    //         }
    //     }
    // );
    Ticktype.find(function (err, data) {
        if(err){
            return res.status(500).json({
                err_code:500,
                message:'Server Error'
            })
        }
        if(data){
            req.session.data = data;
            res.status(200).json(data)
        }
    });
});

//获取用户信息数据接口
router.post('/Userinfo', function (req, res) {
    User.findOne({
        account:req.body.account
    },function (err, data) {
        if(err){
            return res.status(500).json({
                err_code:500,
                message:'Server Error'
            })
        }
        if(data){
            res.status(200).json(data)
        }
    });
});

//保存用户门票购买信息
router.post('/Buyticket', function (req, res) {
    Ticket.findOne(
        {account:req.body.account},function (err, data) {
            if(data === null ){
                //实现库存的更新
                Ticktype.update(
                {ticket_typeid:req.body.ticket_typeid}, {$inc: {amount: -1}}, function(err, data) {
                    console.log('修改成功')
                });
                new Ticket(
                    req.body
                ).save(
                    function (err, data) {
                        if(err){
                            return res.status(500).send('error')
                        }
                        return res.status(200).json({err_code:0})
                    }
                );
            }else{
                return res.status(200).json({err_code:1})
            }
        }
    )
});

//获取门票数据
router.post('/Tickinfo', function (req, res) {
    Ticket.findOne({
        account:req.body.account
    },function (err, data) {
        if(err){
            return res.status(500).json({
                err_code:500,
                message:'Server Error'
            })
        }
        if(data){
            res.status(200).json(data)
        }
    });
});

// 退票接口
router.post('/DelTicket', function (req, res) {
    Ticket.findOneAndRemove({
        account:req.body.account
    },function (err, data) {
            if(err){
                return res.status(500).send({err_code:1})
            }
            return res.status(200).json({err_code:0})
        })
});

// 获取所有的门票信息
router.get('/DataList', function (req, res) {
    console.log('ok')
    Ticket.find(function (err, data) {
        if(err){
            return res.status(500).json({
                err_code:500,
                message:'Server Error'
            })
        }
        if(data){
            req.session.data = data;
            res.status(200).json(data)
        }
    });
});

module.exports = router;
